package com.supplychain.financial.parent.api;

import com.supplychain.financial.parent.entity.DTO.CheckingDetailDTO;
import com.supplychain.financial.parent.entity.DTO.GeneralLedgerDTO;
import com.supplychain.financial.parent.entity.DTO.PageDTO;
import com.supplychain.financial.parent.entity.DTO.SmokeCustomerListDTO;
import com.supplychain.financial.parent.entity.QueryModel.CheckingQueryModel;
import com.supplychain.financial.parent.common.exception.CustomException;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * Created by zhengchuan on 2017/4/21.
 */
public interface CheckingService {
    /**
     * 分页查询总账记录
     * @param checkingQueryModel 过滤条件
     * @return
     */
    PageDTO<GeneralLedgerDTO> getGeneralLedgerByPageQuery(CheckingQueryModel checkingQueryModel) throws CustomException;

    Map<String,Object> getTbcocompNamesAndBankNamesAndMerNames(String userId) throws CustomException;

    PageDTO<CheckingDetailDTO> getCheckingDetailByPageQuery(CheckingQueryModel checkingQueryModel) throws CustomException;

    List<Map<String,Object>> getGeneralLedgerToExportExcel(CheckingQueryModel checkingQueryModel) throws CustomException;

    List<Map<String,Object>> getDetailToExportExcel(CheckingQueryModel checkingQueryModel) throws CustomException;

    List<Map<String,Object>> selectEmpNameToSelected(Map<String, String> params) throws CustomException;

    List<Map<String,Object>> selectChannelNameToSelected(Map<String, String> params) throws CustomException;

    /**
     * 卷烟消费行为记录
     * @param stringMap
     * @return
     */
    PageDTO<SmokeCustomerListDTO> getSmokeCustomerByPageQuery(Map<String, String> stringMap) throws CustomException;

    List<Map<String,Object>> getSmokeCustomerByQuery(Map<String, String> params) throws CustomException;

    List<Map<String,Object>> getMain1Data(Map<String, String> stringMap) throws CustomException;

    List<Map<String,Object>> getMain2Data(Map<String, String> stringMap) throws CustomException;

    List<Map<String,Object>> getMain3Data(Map<String, String> stringMap) throws CustomException;

    List<Map<String,Object>> getMain4Data(Map<String, String> stringMap) throws CustomException;

    List<Map<String,Object>> getMain5Data(Map<String, String> stringMap) throws CustomException;

    List<Map<String,Object>> getMain6Data(Map<String, String> stringMap) throws CustomException;

    List<Map<String,Object>> getMain7Data(Map<String, String> stringMap) throws CustomException;

    List<Map<String,Object>> selectQuXianNameToSelected(Map<String, String> params) throws CustomException;

    List<Map<String,String>> getBuyShopInfoByPhone(String phone)throws Exception;

    List<Map<String,Object>> selectOrderLevelToSelected() throws Exception;

    List<Map<String,Object>> selectBaseTypeNameToSelected() throws Exception;

    List<Map<String,Object>> selectCityTypeToSelected() throws Exception;


    List<Map<String,Object>> selectMaterialCompanyToSelected();

    List<Map<String,Object>> getCustomerMain1Data(Map<String, String> stringMap);

    List<Map<String,Object>> getCustomerMain2Data(Map<String, String> stringMap);
    List<Map<String,Object>> getCustomerMain3Data(Map<String, String> stringMap);
    List<Map<String,Object>> getCustomerMain4Data(Map<String, String> stringMap);
    List<Map<String,Object>> getCustomerMain5Data(Map<String, String> stringMap);
    List<Map<String,Object>> getCustomerMain6Data(Map<String, String> stringMap);

    String getCustomerRegisterNum(Map<String, String> stringMap);

    String getCustomerDayOrderNum(Map<String, String> stringMap) throws ParseException;

    PageDTO<Map<String,String>> getSmokeCustomerStatisticsListByPageQuery(Map<String, String> stringMap) throws CustomException;

    List<Map<String,Object>> getCustomerShop(Map<String, String> stringMap);

    List<Map<String,Object>> getCarLastLocation(Map<String, String> stringMap);

}
